from django.shortcuts import render_to_response
from ponto_eletronico.ponto.models import Ponto
from django.http import HttpResponse, HttpResponseRedirect
from django.utils.html import escape
from django.contrib import auth
import datetime
from django.contrib.auth.models import User
from django.contrib import admin
from ponto_eletronico.ponto import settings
from django.template import RequestContext


def index(request):
    if request.POST:
        login = request.POST.get('login', None)
        senha = request.POST.get('senha', None)
        tipo = request.POST.get('tipo', None)

        user = auth.authenticate(username=login, password=senha)
        if user is not None:
            if tipo=='Logar':
                auth.login(request,user)
                return HttpResponseRedirect('/'+settings.PONTO_URL+"admin/")
            try:
                ultimo_tipo = user.ponto_set.order_by('-hora')[0].tipo # pode dar erro pois ha o caso de nao haver historico
            except:
                ultimo_tipo = False # caso nao tebha istorico so pode sair
            if ultimo_tipo == (tipo=='Entrar'):
                # a hora e passada ( para uso futuro )
                return render_to_response('ponto/login.html',{'duplicado':True,'login': login, 'hora':datetime.datetime.now(), 'tipo':(tipo=='Entrar')},context_instance=RequestContext(request))
            else:
                user.ponto_set.create(maquina=request.META.get('REMOTE_ADDR','desconhecido'), hora=datetime.datetime.now(), tipo=(tipo=="Entrar"), datr=False)
                return render_to_response('ponto/gerado.html',{'gerado':True,'login': login, 'hora':datetime.datetime.now(), 'tipo':(tipo=='Entrar')},context_instance=RequestContext(request))
        else:
            return render_to_response('ponto/login.html',{'erro':True},context_instance=RequestContext(request))
    else:
        return render_to_response('ponto/login.html',context_instance=RequestContext(request))

def fadmin(request, *args):
	if request.user.is_authenticated():
		return admin.site.root(request, *args)
	else:
		return index(request)
